package co.com.travelsoft.ati.entities.ejb;

import java.util.List;

import javax.ejb.Remote;

import co.com.travelsoft.ati.entities.Ciudades;
import co.com.travelsoft.ati.entities.Eventos;
import co.com.travelsoft.ati.entities.Paises;
import co.com.travelsoft.ati.entities.Tiposevento;
import co.com.travelsoft.ati.exception.TravelSoftException;

/**
 * EJB remoto que permite el manejo de la
 * logica de negocio de un evento.
 * 
 * @author Luis Eduardo
 *
 */
@Remote
public interface EventosEJB {

	/**
	 * Permite crear un evento.
	 * @param eventos 
	 * @exception throws TravelSoftException 
	 */
	public abstract void crearEventos(Eventos Eventos) throws TravelSoftException;

	/**
	 * Permite buscar un evento por su identificacion.
	 * @param eventos
	 * @return Eventos : un objeto evento
	 */
	public abstract Eventos buscarEventosPorId(Eventos Eventos);

	/**
	 * Permite listar todos los eventos existentes.
	 * @return List<Eventos> : una lista de eventos
	 */	
	public abstract List<Eventos> listarEventos();

	/**
	 * Permite actualizar la informacion de un evento.
	 * @param eventos
	 * @exception throws TravelSoftException 
	 */	
	public abstract void actualizarEventos(Eventos Eventos) throws TravelSoftException;

	/**
	 * Permite borrar un evento.
	 * @param eventos
	 * @exception throws TravelSoftException 
	 */	
	public abstract void borrarEventos(Eventos Eventos) throws TravelSoftException;
	
	/**
	 * Permite buscar un pais por su identificacion.
	 * @param paises
	 * @return Ciudades : un objeto paises
	 */
	public abstract Paises buscarPaisesPorId(Paises Paises);

	/**
	 * Permite listar todos los paises existentes.
	 * @return List<Paises> : una lista de paises
	 */	
	public abstract List<Paises> listarPaises();

	
	/**
	 * Permite buscar una ciudad por su identificacion.
	 * @param ciudades
	 * @return Ciudades : un objeto ciudades
	 */
	public abstract Ciudades buscarCiudadesPorId(Ciudades ciudades);

	/**
	 * Permite listar todas las ciudades existentes.
	 * @return List<Ciudades> : una lista de ciudades
	 */	
	public abstract List<Ciudades> listarCiudades();

	/**
	 * Permite buscar un Tipo Evento por su identificacion.
	 * @param Tiposevento
	 * @return Tiposevento : un objeto Tipos de Evento
	 */
	public abstract Tiposevento buscarTiposEventoPorId(Tiposevento Tiposevento);

	/**
	 * Permite listar todos los tipos de evento existentes.
	 * @return List<Tiposevento> : una lista de tiposEvento
	 */	
	public abstract List<Tiposevento> listarTiposEvento();

}